Within the field of computing, many scenarios involve a presentation of applications of a computing environment through a set of at least two displays. For example, a first application comprising an email client may comprise a set of views for different messages, respectively presented as a movable window with an adjustable size and shape, and a second application comprising a media player may comprise a display region presented without user interface controls (“chrome”). Some applications may exhibit relationships (e.g., a first application and a second application that are used together, and/or some views of an application that exhibit a superior/subordinate relationship).
A user may choose to position the respective applications and views in various ways throughout the display set. For example, the views of the first application may be consolidated into one window or pane, consolidated on the first display, or distributed across the first display and the second display. The second application may be presented as a portion of one display; as a full-sized region that fills a display in a “maximized” mode; or as a region that spans at least a portion of two or more displays. The displays may also exhibit a logical arrangement (e.g., a first display may be logically positioned to the left of a second display, such that moving a pointer beyond the left edge of the second display causes it to appear on the first display and vice versa), and the logical arrangement may or may not correspond to a physical arrangement of the displays. To enable such interactions, the computing environment may represent the collection of displays as a two-dimensional coordinate space oriented around an origin, and may represent the position of each view as a set of coordinates within the display space.
The positioning of the views may also reflect a three-dimensional ordering, where some views are presented over other views. Among the displays, a particular application with which the user has recently interacted may comprise a “top” application in the ordering (e.g., the application associated with the latest user input from the user), such that user input from various input components is delivered to the “top” application. The user may also interact with the applications distributed across the displays in various ways, such as a “back-stack” that allows the user to transition the “top” application to a second-most-“top” application in the ordering, and/or an application switcher that allows the user to select any running application as the “top” application that receives user input. In this manner, the computing environment may present the applications to the user across a variety of displays and manage the routing of input according to a current input focus.